"""
元组：
    Python 的元组与列表类似，不同之处在于元组的元素不能修改。
    元组使用小括号 ( )，列表使用方括号 [ ]。
    元组创建很简单，只需要在括号中添加元素，并使用逗号隔开即可。

    元组与字符串类似，下标索引从 0 开始，可以进行截取，组合等
    元组中的元素值是不允许删除的，但我们可以使用del语句来删除整个元组

    元组内置函数：
        len(tuple)：计算元组元素个数
        max(tuple)：返回元组中元素最大值
        min(tuple)：返回元组中元素最小值
        tuple(iterable)：将可迭代系列转换为元组
"""

# 创建元组
tuple1 = ()  # 创建一个空元组
print(type(tuple1))
tuple2 = (100)  # 当元组只有一个元素且不加逗号时，类型为该元素类型（原因：把括号当成了数学中的结合符号-》（3+5）*3）
print(type(tuple2))
tuple3 = (100,)  # 加了逗号就是元组类型
print(type(tuple3))
tuple4 = ("python", "java", "c", "c++")

# 索引操作
print(tuple4[0])
# 截取操作
print(tuple4[1:3])
# 重复操作
print(tuple4 * 3)
# 拼接操作
print(tuple4 + ("go", "p"))
# 元组中的元素不能删除，但是可以删除整个元组
del tuple4  # 删除了，这个元组就没有了，就不能访问了
# 获取元组的长度
tuple5 = {"python", "java", "c"}
print(len(tuple5))
# 判断某个元素是否存在元组中
print("c" in tuple5)
# 遍历元组
for s in tuple5:
    print(s, end=" ")

# 关于元组是不可变的,指定是元组中元素指向的地址不可变，但是如果里面存了一个列表，列表的内容是可变的，但是整个列表不可变
tuple6 = ("a", "b", "c", ["d", "e", "f"])
tuple6[3][0] = "x"
print(tuple6)
